<?php // $Id: array.php,v 1.3 2006/07/02 21:25:27 alex Exp $
/**
 * Класс-контейнер вложенных данных
 *
 */
//
// Итератор применяется теперь для data  implements Iterator
class sharpobj_data_item_array extends sharpobj_data_item_data 
{
    // Переопределяем тип данных
    protected $type = 'array';
    protected $cursor = 0;

    protected function getCondition()
    {
        // Получить состояние объекта
        // Для проверки состояний объекта пользователем
        // используйте функции проверки состояний
        // Для внешней проверки используйте функции isXXX

        // У этого элемента состояние не проверяется
        $condition = 'data';

        return $condition;
    }
    function add($datapath=null,$type_or_dataobj,$options=null)
    {   // Добавляем безымянный элемент
        if ($this->pathThis($datapath) OR $this->pathNextLast($datapath))
        {   // 
            return $this->addSubItem(null,
                                      $type_or_dataobj,
                                       $options);
        }else 
        {
            mst_error('Добавление элемента второго уровня',"Функция предназначена для работы с элементами первого уровня",1);
        }
    }

	/* Итератор уже применен  
    // Посчитать элементы
    function count()
    {
        return count($this->r_data);
    }
    
    // Функции итерации
    public function rewind()
    {
        reset($this->r_data);
    }
    public function current()
    {
        $var = current($this->r_data);
        return $var;
    }

    public function key()
    {
        $var = key($this->r_data);
        return $var;
    }

    public function next()
    {
        $var = next($this->r_data);
        return $var;
    }
    public function valid()
    {
        $var = $this->current() !== false;
        return $var;
    }
    */


}
?>